/**
 * @Company:中享思途   
 * @Title:OrderServiceImpl.java 
 * @Author:IL Clown   
 * @Date:2020年8月25日 下午9:24:33     
 */
package com.situ.shopsystem.service.Impl;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.situ.shopsystem.dao.OrderDao;
import com.situ.shopsystem.pojo.LayuiResult;
import com.situ.shopsystem.pojo.Order;
import com.situ.shopsystem.pojo.User;
import com.situ.shopsystem.service.OrderService;

/** 
 * @ClassName:OrderServiceImpl 
 * @Description:(这里用一句话描述这个类的作用)  
 */
@Service
public class OrderServiceImpl implements OrderService {

	@Autowired
	private OrderDao orderDao;

	/** 
	 * @Title: save 
	 * @Description:(这里用一句话描述这个方法的作用)
	 * @param order
	 * @return  
	 */
	@Override
	public int save(Order order, HttpSession session) {
		User user = (User) session.getAttribute("user");
		order.setUpdateTime(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date()));
		order.setActiveFlag(1);
		order.setState(1);
		order.setUserId(user.getRowId());
		return orderDao.save(order);
	}

	/** 
	 * @Title: update 
	 * @Description:(这里用一句话描述这个方法的作用)
	 * @param rowId
	 * @return  
	 */
	@Override
	public int update(Order order, HttpSession session) {
		User user = (User) session.getAttribute("user");
		Order order2 = orderDao.findById(order.getRowId());
		order2.setUpdateTime(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date()));
		return orderDao.update(order2);
	}

	/** 
	 * @Title: findByUserId 
	 * @Description:(这里用一句话描述这个方法的作用)
	 * @param userId
	 * @return  
	 */
	@Override
	public List<Order> findByUserId(Long userId) {
		return orderDao.findByUserId(userId);
	}

	/** 
	 * @Title: findAll 
	 * @Description:(这里用一句话描述这个方法的作用)
	 * @param page
	 * @param limit
	 * @return  
	 */
	@Override
	public LayuiResult findAll(Integer page, Integer limit) {
		Integer first = limit * (page - 1);
		int count = orderDao.findCount();
		List<Order> list = orderDao.findAllOrder(first, limit);
		return new LayuiResult(0, null, count, list);
	}

	/** 
	 * @Title: updateState 
	 * @Description:(这里用一句话描述这个方法的作用)
	 * @param order
	 * @return  
	 */
	@Override
	public int updateState(Long rowId) {
		Order order = orderDao.findById(rowId);
		order.setState(order.getState() + 1);
		return orderDao.update(order);
	}

}
